using Lzfy_His_Service.Models;

namespace Lzfy_His_Service.Services
{
    public interface IRoleService
    {
        Task<RoleListResponse> GetRoleListAsync(RoleListRequest request);
        Task<RoleDto?> GetRoleByIdAsync(int id);
        Task<int> CreateRoleAsync(RoleDto roleDto);
        Task<bool> UpdateRoleAsync(int id, RoleDto roleDto);
        Task<bool> DeleteRoleAsync(int id);
        Task<bool> ToggleRoleStatusAsync(int id, bool isActive);
        Task<List<RoleDto>> GetAllActiveRolesAsync();
        Task<bool> AssignRolePermissionsAsync(RolePermissionRequest request);
        Task<List<MenuDto>> GetRolePermissionsAsync(int roleId);
    }
}